home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / (A)TB / (A)TBX.ADF / Checkbook / check.f < prev    next >
Text File  |  1992-03-18  |  34KB  |  916 lines

  1.  
  2.       PROGRAM  CHECK
  3. C
  4. C     PROGRAM MANAGES A CHECKING ACCOUNT
  5. C       PREPARES REPORT FILES SORTED ON WHATEVER FIELD
  6. C
  7. C     USER NOTES:
  8. C     THIS ROUTINE REQUIRES AN INPUT LEDGER FILE
  9.  
  10.       IMPLICIT REAL*4 (A-Z)
  11.       REAL*4 AMOUNT,CHKSUM,SUMREC,NONREC,SUMDATE,SUMWITH,SUMDEP,SUMOTHER
  12.       REAL*4 COUNT
  13.       INTEGER MONTH,DAY,YEAR,CHECKNO,SORT,REC,DATESTART,DATEEND
  14.       INTEGER MOSTR,DASTR,YRSTR,MOEND,DAEND,YREND,TODAY,CHKSTART,CHKEND
  15.       CHARACTER*1 TYPE,TAXES,ANS,ANS1,ANS2,ANS3,RECONCILE
  16.       CHARACTER*21 WHO
  17.       CHARACTER*217 WHAT,WHATWORD
  18.       CHARACTER*60 TITLE
  19.       CHARACTER*40 FILIN, FILOUT
  20.  
  21.    10 FORMAT(A)
  22.    30 WRITE(9,40)
  23.    40 FORMAT(/,' input datafile: ')
  24.       READ(9,'(A)') FILIN
  25.       OPEN(UNIT=4,FILE=FILIN,STATUS='OLD',ERR=42)
  26.       GOTO 48
  27.    42 CONTINUE
  28.       WRITE(9,44) FILIN
  29.    44 FORMAT(/,' cannot find/open the specified file ',A,//)
  30.       GOTO 30
  31.    48 CONTINUE
  32.  
  33. C******************************** CHECK LEDGER ******************************
  34.  
  35.       WRITE(9,100)
  36.   100 FORMAT(/,' Would you like to view the ledger file? Y/N',/)
  37.       READ(9,10) ANS1
  38.       IF(ANS1.EQ.'Y'.OR.ANS1.EQ.'y') THEN
  39.         WRITE(9,300)
  40. C  300 FORMAT(/,' Want an output file? Y/N',/)
  41.         READ(9,10) ANS2
  42.         IF(ANS2.EQ.'N'.OR.ANS2.EQ.'n') GOTO 108
  43.         IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  44.           WRITE(9,50)
  45. C   50 FORMAT('   output filename: ')
  46.           READ(9,'(A)') FILOUT
  47.           OPEN(UNIT=10,FILE=FILOUT,STATUS='NEW')
  48.         ENDIF
  49.   108 CONTINUE
  50.         READ(4,10) TITLE
  51. C  PRINT PROGRAM HEADER                                                 
  52.         WRITE(9,90) TITLE, FILIN
  53.    90 FORMAT(/,' CHECK PROGRAM',
  54.      +/,' TITLE:  ',A,/,' LEDGER FILE: ',A,//,
  55.  
  56.      +'       date        chk   amount who                   what',/,
  57.      +' -------------------------------------------------------------',
  58.      +'--------')
  59.  
  60.         IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,92) TITLE,FILIN
  61.    92 FORMAT(/,T10,'CHECK PROGRAM',/,
  62.      +T10,'TITLE: ',A,/,T10,'LEDGER FILE: ',A,//,
  63.      +T10,'      date        chk   amount who                   what',/,
  64.      +T10,'-----------------------------------------------------------',
  65.      +'--------')
  66.         DO 130 I=1,500
  67.           READ(4,120,END=130,ERR=130) RECONCILE,MONTH,DAY,YEAR,TYPE,
  68.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  69.   120 FORMAT(A1,1X,I2,1X,I2,1X,I4,1X,A1,1X,A1,1X,I4,1X,F8.2,
  70.      +1X,A21,1X,A17)
  71.  
  72.         IF(TYPE.EQ.'C') THEN
  73.           WRITE(9,135) RECONCILE,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,
  74.      +    AMOUNT,WHO,WHAT
  75.   135 FORMAT(1X,A1,1X,I2,1X,I2,1X,I4,1X,A1,1X,A1,1X,I4,1X,F8.2,1X,A,
  76.      +1X,A17)
  77.         IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  78.           WRITE(10,136) RECONCILE,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,
  79.      +    AMOUNT,WHO,WHAT
  80.   136 FORMAT(T10,A1,1X,I2,1X,I2,1X,I4,1X,A1,1X,A1,1X,I4,1X,F8.2,1X,A,
  81.      +1X,A17)
  82.         ENDIF
  83.           GOTO 130
  84.         ENDIF
  85.       WRITE(9,140) RECONCILE,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT
  86.   140 FORMAT(1X,A1,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,23X,A17)
  87.         IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  88.       WRITE(10,141) RECONCILE,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT
  89.   141 FORMAT(T10,A1,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,23X,A17)
  90.         ENDIF
  91.  
  92.   130 CONTINUE
  93.       REWIND(4)
  94.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  95.         WRITE(9,340) FILOUT
  96.         CLOSE(10)
  97.       ENDIF
  98.       ENDIF
  99.  
  100. C****************************** CHECKBOOK **********************************
  101.  
  102.       WRITE(9,200)
  103.   200 FORMAT(/,' Would you like to view the ledger file in checkbook',
  104.      +' format? Y/N',/)
  105.       READ(9,10) ANS1
  106.       IF(ANS1.EQ.'Y'.OR.ANS1.EQ.'y') THEN
  107.         WRITE(9,300)
  108. C  300 FORMAT(/,' Want an output file? Y/N',/)
  109.         READ(9,10) ANS2
  110.         IF(ANS2.EQ.'N'.OR.ANS2.EQ.'n') GOTO 208
  111.         IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  112.           WRITE(9,50)
  113. C   50 FORMAT('   output filename: ')
  114.           READ(9,'(A)') FILOUT
  115.           OPEN(UNIT=10,FILE=FILOUT,STATUS='NEW')
  116.         ENDIF
  117.   208 CONTINUE
  118.         READ(4,10) TITLE
  119.         WRITE(9,203) TITLE, FILIN
  120.   203 FORMAT(/,T25,'CHECKBOOK PROGRAM',//,
  121.      +' TITLE:  ',A,/,' DATA FILE: ',A,//,
  122.      +'       date      chk   amount who                      balance',/,
  123.      +' -------------------------------------------------------------')
  124.         IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,204) TITLE,FILIN
  125.   204 FORMAT(/,T10,'CHECKBOOK PROGRAM',/,
  126.      +T10,'TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  127.      +T10,'      date      chk   amount who                    ',
  128.      +'  balance',/,
  129.      +T10,'-----------------------------------------------------------',
  130.      +'--')
  131.         CHKSUM=0.00
  132.         DO 230 I=1,500
  133.           READ(4,120,ERR=230,END=230) RECONCILE,MONTH,DAY,YEAR,TYPE,
  134.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  135.           IF(TYPE.EQ.'D'.OR.TYPE.EQ.'d') TYPE='D'
  136.           IF(TYPE.EQ.'W'.OR.TYPE.EQ.'w') TYPE='W'
  137.           IF(TYPE.EQ.'C'.OR.TYPE.EQ.'c') TYPE='C'
  138.           IF(TYPE.EQ.'O'.OR.TYPE.EQ.'o') TYPE='O'
  139.           IF(TYPE.EQ.'D') CHKSUM=CHKSUM+AMOUNT
  140.           IF(TYPE.EQ.'W') CHKSUM=CHKSUM-AMOUNT
  141.           IF(TYPE.EQ.'C') CHKSUM=CHKSUM-AMOUNT
  142.           IF(TYPE.EQ.'O') CHKSUM=CHKSUM-AMOUNT
  143.  
  144. C     INTEREST IS HANDLED AS A DEPOSIT
  145.  
  146.           IF(TYPE.EQ.'C') THEN
  147.             WRITE(9,235) RECONCILE,MONTH,DAY,YEAR,TYPE,CHECKNO,
  148.      +      AMOUNT,WHO,CHKSUM
  149.   235 FORMAT(1X,A1,1X,I2,1X,I2,1X,I4,1X,A1,1X,I4,1X,F8.2,1X,A21,
  150.      +1X,F10.2)
  151.         IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  152.             WRITE(10,236) RECONCILE,MONTH,DAY,YEAR,TYPE,CHECKNO,
  153.      +      AMOUNT,WHO,CHKSUM
  154.   236 FORMAT(T10,A1,1X,I2,1X,I2,1X,I4,1X,A1,1X,I4,1X,F8.2,1X,A21,
  155.      +1X,F10.2)
  156.         ENDIF
  157.         GOTO 220
  158.         ENDIF
  159.       WRITE(9,237) RECONCILE,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT,CHKSUM
  160.   237 FORMAT(1X,A1,1X,I2,1X,I2,1X,I4,1X,A1,6X,F8.2,1X,A17,5X,F10.2)
  161.         IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  162.         WRITE(10,238) RECONCILE,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT,CHKSUM
  163.   238 FORMAT(T10,A1,1X,I2,1X,I2,1X,I4,1X,A1,6X,F8.2,1X,A17,5X,F10.2)
  164.         ENDIF
  165.   220 CONTINUE
  166.   230 CONTINUE
  167.         REWIND(4)
  168.         WRITE(9,240) CHKSUM
  169.   240 FORMAT(/,' does this look familiar? is the balance ',F10.2,'?',/)
  170.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  171.         WRITE(9,340) FILOUT
  172.         CLOSE(10)
  173.       ENDIF
  174.       ENDIF
  175.  
  176. C******************* SORTED OUTPUT ****************************************
  177.  
  178.   305 CONTINUE
  179.       WRITE(9,306)
  180.   306 FORMAT(/,' Want to see a sorted file? Y/N',/)
  181.       READ(9,10) ANS3
  182.       IF(ANS3.EQ.'N'.OR.ANS3.EQ.'n') GOTO 2000
  183. C      IF(ANS3.EQ.'Y'.OR.ANS3.EQ.'y') THEN
  184.  
  185.         WRITE(9,300)
  186.   300 FORMAT(/,' Want an output file? Y/N',/)
  187.         READ(9,10) ANS2
  188.         IF(ANS2.EQ.'N'.OR.ANS2.EQ.'n') GOTO 308
  189.         IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  190.           WRITE(9,50)
  191.    50 FORMAT('   output filename: ')
  192.           READ(9,'(A)') FILOUT
  193.           OPEN(UNIT=10,FILE=FILOUT,STATUS='NEW')
  194.         ENDIF
  195.   308 CONTINUE
  196.         WRITE(9,310)
  197.   310 FORMAT(/,' what would you like to sort on..choose one:',/,
  198.      +         '    choice  positive sort field',/,
  199.      +         '    ---------------------------------------',/,
  200.      +         '       1    reconciled entries',/,
  201.      +         '       2    all non reconciled entries',/,
  202.      +         '       3    all transactions - by date range',/,
  203.      +         '       4    non reconciled checks',/,
  204.      +         '       5    non reconciled deposits',/,
  205.      +         '       6    deposits - by date range',/,
  206.      +         '       7    withdrawals - by data range',/,
  207.      +         '       8    other debits - by date range',/,
  208.      +         '       9    checks - by range of check numbers',/,
  209.      +         '      10    all debits - by date range',/,
  210.      +         '      11    explanation keywords',/,
  211.      +         '      12    possible tax expense implications',/,
  212.      +         '      13    quit',//)
  213.   
  214.       READ(9,*) SORT
  215.       IF(SORT.EQ.1) GOTO 312
  216.       IF(SORT.EQ.2) GOTO 400
  217.       IF(SORT.EQ.3) GOTO 502
  218.       IF(SORT.EQ.4) GOTO 600
  219.       IF(SORT.EQ.5) GOTO 650
  220.       IF(SORT.EQ.6) GOTO 752
  221.       IF(SORT.EQ.7) GOTO 702
  222.       IF(SORT.EQ.8) GOTO 802
  223.       IF(SORT.EQ.9) GOTO 900
  224.       IF(SORT.EQ.10) GOTO 950
  225.       IF(SORT.EQ.11) GOTO 1000
  226.       IF(SORT.EQ.12) GOTO 1200
  227.       IF(SORT.GT.13) GOTO 305
  228.       IF(SORT.EQ.13) GOTO 2000
  229.  
  230. C******************************* SORT 1 RECONCILED ************************
  231.  
  232.   312 CONTINUE
  233.       READ(4,10) TITLE
  234.       WRITE(9,314) TITLE, FILIN
  235.   314 FORMAT(/,' PROGRAM CHECK - SUMMARY OF RECONCILED TRANSACTIONS',
  236.      +/,' TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  237.      +'          date        chk   amount who/what               ',
  238.      +'  balance',/,
  239.      +' ----------------------------------------------------------',
  240.      +'--------')
  241.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,315) TITLE, FILIN
  242.   315 FORMAT(/,T10,'PROGRAM CHECK - SUMMARY OF RECONCILED TRANSACTIONS',
  243.      +/,T10,'TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  244.      +T10,'         date        chk   amount who/what               ',
  245.      +'  balance',/,
  246.      +T10,'---------------------------------------------------------',
  247.      +'---------')
  248.       SUMREC=0.00
  249.       COUNT=0
  250.       DO 320 I=1,500
  251.         REC=0
  252.         RECONCILE=' '
  253.         READ(4,120,END=320,ERR=320) RECONCILE,MONTH,DAY,YEAR,TYPE,
  254.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  255.         IF(TYPE.EQ.'D'.OR.TYPE.EQ.'d') TYPE='D'
  256.         IF(TYPE.EQ.'W'.OR.TYPE.EQ.'w') TYPE='W'
  257.         IF(TYPE.EQ.'C'.OR.TYPE.EQ.'c') TYPE='C'
  258.         IF(TYPE.EQ.'O'.OR.TYPE.EQ.'o') TYPE='O'
  259.         IF(RECONCILE.EQ.'Y'.OR.RECONCILE.EQ.'y') REC=2
  260.         IF(REC.EQ.2) THEN
  261.           IF(TYPE.EQ.'D') SUMREC=SUMREC+AMOUNT
  262.           IF(TYPE.EQ.'W') SUMREC=SUMREC-AMOUNT
  263.           IF(TYPE.EQ.'C') SUMREC=SUMREC-AMOUNT
  264.           IF(TYPE.EQ.'O') SUMREC=SUMREC-AMOUNT
  265.           COUNT=COUNT+1
  266.           IF(TYPE.EQ.'C') THEN
  267.             WRITE(9,409)COUNT,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,AMOUNT,
  268.      +WHO,SUMREC
  269.           IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  270.           WRITE(10,416)COUNT,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,AMOUNT,
  271.      +WHO,SUMREC
  272.           ENDIF
  273.           GOTO 337
  274.           ENDIF
  275.         WRITE(9,417) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT,SUMREC
  276.             IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  277.               WRITE(10,418) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT,SUMREC
  278.             ENDIF
  279.   337 CONTINUE
  280.         ENDIF
  281.   320 CONTINUE
  282.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  283.         WRITE(9,340) FILOUT
  284.   340 FORMAT(/,' your reconciled sort output is in file ',A)
  285.         CLOSE(10)
  286.       ENDIF
  287.         REWIND(4)
  288.       GOTO 305
  289.  
  290. C********************** SORT 2 NON-RECONCILED ******************************
  291.  
  292.   400 CONTINUE
  293.       READ(4,10) TITLE
  294.       WRITE(9,414) TITLE, FILIN
  295.   414 FORMAT(/,' PROGRAM CHECK - SUMMARY OF NON-RECONCILED ',
  296.      +'TRANSACTIONS',/,
  297.      +' TITLE:  ',A,/,' DATA FILE: ',A,//,
  298.  
  299.      +'          date        chk   amount who/what               ',
  300.      +'  balance',/,
  301.      +' ---------------------------------------------------------',
  302.      +'---------')
  303.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,415) TITLE, FILIN
  304.   415 FORMAT(/,T10,'PROGRAM CHECK - SUMMARY OF NON-RECONCILED',
  305.      +' TRANSACTIONS',
  306.      +/,T10,'TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  307.      +T10,'         date        chk   amount who/what               ',
  308.      +'  balance',/,
  309.      +T10,'---------------------------------------------------------',
  310.      +'---------')
  311.       NONREC=0.00
  312.       COUNT=0.
  313.       DO 420 I=1,500
  314.       REC=0
  315.         READ(4,120,ERR=420,END=420) RECONCILE,MONTH,DAY,YEAR,TYPE,
  316.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  317.         IF(RECONCILE.EQ.' '.OR.RECONCILE.EQ.'N') REC=1
  318.         IF(REC.EQ.1) THEN
  319.           IF(TYPE.EQ.'D'.OR.TYPE.EQ.'d') TYPE='D'
  320.           IF(TYPE.EQ.'W'.OR.TYPE.EQ.'w') TYPE='W'
  321.           IF(TYPE.EQ.'C'.OR.TYPE.EQ.'c') TYPE='C'
  322.           IF(TYPE.EQ.'O'.OR.TYPE.EQ.'o') TYPE='O'
  323.           IF(TYPE.EQ.'D') NONREC=NONREC+AMOUNT
  324.           IF(TYPE.EQ.'W') NONREC=NONREC-AMOUNT
  325.           IF(TYPE.EQ.'C') NONREC=NONREC-AMOUNT
  326.           IF(TYPE.EQ.'O') NONREC=NONREC-AMOUNT
  327.           COUNT=COUNT+1.
  328.         IF(TYPE.EQ.'C') THEN
  329.           WRITE(9,409)COUNT,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,AMOUNT,
  330.      +WHO,NONREC
  331.   409 FORMAT(1X,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,1X,A1,1X,I4,1X,F8.2,1X,
  332.      +A21,1X,F10.2)
  333.           IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  334.           WRITE(10,416)COUNT,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,AMOUNT,
  335.      +WHO,NONREC
  336.   416 FORMAT(T10,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,1X,A1,1X,I4,1X,F8.2,1X,
  337.      +A21,1X,F10.2)
  338.           ENDIF
  339.           GOTO 425
  340.         ENDIF
  341.        WRITE(9,417) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT,NONREC
  342.   417 FORMAT(1X,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,1X,A17,5X,F10.2)
  343.  
  344.             IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  345.               WRITE(10,418) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT,NONREC
  346.   418 FORMAT(T10,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,1X,A17,5X,F10.2)
  347.             ENDIF
  348.         ENDIF
  349.   425 CONTINUE
  350.   420 CONTINUE
  351.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  352.         WRITE(9,440) FILOUT
  353.   440 FORMAT(/,' your non-reconciled sort output is in file ',A)
  354.         CLOSE(10)
  355.       ENDIF
  356.         REWIND(4)
  357.       GOTO 305
  358.  
  359. C************** SORT 3 DATE - NON RECONCILED BY DATE *********************
  360.  
  361.   502 CONTINUE
  362.       WRITE(9,500)
  363.   500 FORMAT(/,' input start month, day, year as MMDDYYYY')
  364.       READ(9,503) MOSTR,DASTR,YRSTR
  365.   503 FORMAT(I2,I2,I4)
  366.       DATESTART = YRSTR*10000 + MOSTR*100 + DASTR
  367.  
  368. C DIAGNOSTICS - GOOD STUFF FOR DEBUGGING INPUT
  369. C      WRITE(9,1000) DASTR,MOSTR,YRSTR,DATESTART
  370. C      IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  371. C        WRITE(10,1000) DASTR,MOSTR,YRSTR,DATESTART
  372. C 1000 FORMAT(//,' DASTR = ',I2,' MOSTR = ',I2,'  YRSTR = ',I4,/,
  373. C     +' DATESTART = ',I8,//)
  374. C      ENDIF
  375.  
  376.       WRITE(9,505)
  377.   505 FORMAT(/,' input end month, day, year as MMDDYYYY')
  378.       READ(9,503) MOEND,DAEND,YREND
  379.       DATEEND = YREND*10000 + MOEND*100 + DAEND
  380.  
  381. C      WRITE(9,1002) DAEND,MOEND,YREND,DATEEND,DATEEND-DATESTART
  382. C      IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  383. C        WRITE(10,1002) DAEND,MOEND,YREND,DATEEND,DATEEND-DATESTART
  384. C 1002 FORMAT(//,' DAEND = ',I2,' MOEND = ',I2,'  YREND = ',I4,/,
  385. C     +' DATEEND = ',I8,'  DATESTART - DATEEND = ',I8,//)
  386. C      ENDIF
  387.  
  388.       READ(4,10) TITLE
  389.       WRITE(9,514) TITLE, FILIN
  390.   514 FORMAT(/,' PROGRAM CHECK - SUMMARY OF TRANSACTIONS BETWEEN',
  391.      +' SELECTED DATES',
  392.      +/,' TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  393.      +'          date        chk   amount who/what               ',
  394.      +'  balance',/,
  395.      +' ----------------------------------------------------------',
  396.      +'--------')
  397.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,515) TITLE, FILIN
  398.   515 FORMAT(/,T10,'PROGRAM CHECK - SUMMARY OF TRANSACTIONS BETWEEN',
  399.      +' SELECTED DATES',
  400.      +/,T10,'TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  401.      +T10,'         date        chk   amount who/what               ',
  402.      +'  balance',/,
  403.      +T10,'----------------------------------------------------------',
  404.      +'--------')
  405.       SUMDATE=0.00
  406.       DO 520 I=1,500
  407.         REC=0
  408.         READ(4,120,ERR=520,END=520) RECONCILE,MONTH,DAY,YEAR,TYPE,
  409.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  410. C        IF(RECONCILE.EQ.'Y'.OR.RECONCILE.EQ.'y') REC=2
  411. C        IF(REC.EQ.2) THEN
  412.         TODAY=YEAR*10000+MONTH*100+DAY
  413. C
  414. C      WRITE(10,1004) TODAY
  415. C 1004 FORMAT(//,' TODAY = ',I8,//)
  416. C
  417.         IF(TODAY.GE.DATESTART.AND.TODAY.LE.DATEEND) THEN
  418.           IF(TYPE.EQ.'D') SUMDATE=SUMDATE+AMOUNT
  419.           IF(TYPE.EQ.'W') SUMDATE=SUMDATE-AMOUNT
  420.           IF(TYPE.EQ.'C') SUMDATE=SUMDATE-AMOUNT
  421.           IF(TYPE.EQ.'O') SUMDATE=SUMDATE-AMOUNT
  422.         COUNT=I
  423.         IF(TYPE.EQ.'C') THEN
  424.           WRITE(9,331)COUNT,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,AMOUNT,
  425.      +WHO,SUMDATE
  426.   331 FORMAT(1X,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,1X,A1,1X,I4,1X,F8.2,1X,
  427.      +A21,1X,F10.2)
  428.           IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  429.             WRITE(10,333)COUNT,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,AMOUNT,
  430.      +WHO,SUMDATE
  431.   333 FORMAT(T10,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,1X,A1,1X,I4,1X,F8.2,1X,
  432.      +A21,1X,F10.2)
  433.           ENDIF
  434.           GOTO 525
  435.         ENDIF
  436.         WRITE(9,339) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT,SUMDATE
  437.   339 FORMAT(1X,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,1X,A17,5X,F10.2)
  438.         IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  439.           WRITE(10,338) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT,SUMDATE
  440.   338 FORMAT(T10,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,1X,A17,5X,F10.2)
  441.           ENDIF
  442.         ENDIF
  443. C        ENDIF
  444.   525 CONTINUE
  445.   520 CONTINUE
  446.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  447.         WRITE(9,540) FILOUT
  448.   540 FORMAT(/,' your date sort output is in file ',A)
  449.         CLOSE(10)
  450.       ENDIF
  451.       REWIND(4)
  452.       GOTO 305
  453.  
  454. C********************** SORT 4 NON-RECONCILED CHECKS ********************
  455.  
  456.   600 CONTINUE
  457.       READ(4,10) TITLE
  458.       WRITE(9,614) TITLE, FILIN
  459.   614 FORMAT(/,' PROGRAM CHECK - SUMMARY OF NON-RECONCILED CHECKS',
  460.      +/,' TITLE:  ',A,/,' DATA FILE: ',A,//,
  461.      +'          date        chk   amount who                    ',
  462.      +'  balance',/,
  463.      +' ---------------------------------------------------------',
  464.      +'----------')
  465.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,615) TITLE, FILIN
  466.   615 FORMAT(/,T10,'PROGRAM CHECK - SUMMARY OF NON-RECONCILED',
  467.      +' CHECKS',
  468.      +/,T10,'TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  469.      +T10,'         date        chk   amount who                    ',
  470.      +'  balance',/,
  471.      +T10,'---------------------------------------------------------',
  472.      +'---------')
  473.       NONREC=0.00
  474.       COUNT=0.
  475.       DO 620 I=1,500
  476.         REC=0
  477.         READ(4,120,ERR=620,END=620) RECONCILE,MONTH,DAY,YEAR,TYPE,
  478.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  479.  
  480.         IF(TYPE.EQ.'C'.OR.TYPE.EQ.'c') TYPE='C'
  481.         IF(RECONCILE.EQ.' '.OR.RECONCILE.EQ.'N') REC=1
  482.         IF(REC.EQ.1.AND.TYPE.EQ.'C') THEN
  483.           NONREC=NONREC+AMOUNT
  484.           COUNT=COUNT+1.
  485.           WRITE(9,609)COUNT,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,AMOUNT,
  486.      +WHO,NONREC
  487.   609 FORMAT(1X,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,1X,A1,1X,I4,1X,F8.2,1X,
  488.      +A21,1X,F10.2)
  489.           IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  490.           WRITE(10,616)COUNT,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,AMOUNT,
  491.      +WHO,NONREC
  492.   616 FORMAT(T10,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,1X,A1,1X,I4,1X,F8.2,1X,
  493.      +A21,1X,F10.2)
  494.           ENDIF
  495.         ENDIF
  496.   620 CONTINUE
  497.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  498.         WRITE(9,640) FILOUT
  499.   640 FORMAT(/,' your non-reconciled check sort is in file ',A)
  500.         CLOSE(10)
  501.       ENDIF
  502.         REWIND(4)
  503.       GOTO 305
  504.  
  505. C********************** SORT 5 NON-RECONCILED DEPOSITS ********************
  506.  
  507.   650 CONTINUE
  508.       READ(4,10) TITLE
  509.       WRITE(9,654) TITLE, FILIN
  510.   654 FORMAT(/,' PROGRAM CHECK - SUMMARY OF NON-RECONCILED DEPOSITS',
  511.      +/,' TITLE:  ',A,/,' DATA FILE: ',A,//,
  512.      +'          date              amount         total',/,
  513.      +' -----------------------------------------------')
  514.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,655) TITLE, FILIN
  515.   655 FORMAT(/,T10,'PROGRAM CHECK - SUMMARY OF NON-RECONCILED',
  516.      +' DEPOSITS',
  517.      +/,T10,'TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  518.      +T10,'         date              amount         total',/,
  519.      +T10,'-----------------------------------------------')
  520.       NONREC=0.00
  521.       COUNT=0.
  522.       DO 660 I=1,500
  523.         REC=0
  524.         READ(4,120,ERR=660,END=660) RECONCILE,MONTH,DAY,YEAR,TYPE,
  525.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  526.         IF(TYPE.EQ.'D'.OR.TYPE.EQ.'d') TYPE='D'
  527.         IF(RECONCILE.EQ.' '.OR.RECONCILE.EQ.'N') REC=1
  528.         IF(REC.EQ.1.AND.TYPE.EQ.'D') THEN
  529.           NONREC=NONREC+AMOUNT
  530.           COUNT=COUNT+1.
  531.           WRITE(9,659)COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,NONREC
  532.   659 FORMAT(1X,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,4X,F10.2)
  533.           IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  534.           WRITE(10,658)COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,NONREC
  535.   658 FORMAT(T10,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,4X,F10.2)
  536.           ENDIF
  537.         ENDIF
  538.   660 CONTINUE
  539.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  540.         WRITE(9,640) FILOUT
  541. C  640 FORMAT(/,' your non-reconciled deposit sort is in file ',A)
  542.         CLOSE(10)
  543.       ENDIF
  544.         REWIND(4)
  545.       GOTO 305
  546.  
  547. C******************* SORT 6 DEPOSITS BY DATE RANGE *************************
  548.  
  549.   752 CONTINUE
  550.       WRITE(9,500)
  551.       READ(9,503) MOSTR,DASTR,YRSTR
  552.       DATESTART = YRSTR*10000 + MOSTR*100 + DASTR
  553.       WRITE(9,505)
  554.       READ(9,503) MOEND,DAEND,YREND
  555.       DATEEND = YREND*10000 + MOEND*100 + DAEND
  556.       READ(4,10) TITLE
  557.       WRITE(9,750) TITLE, FILIN
  558.   750 FORMAT(/,' PROGRAM CHECK - SUMMARY OF DEPOSITS BETWEEN',
  559.      +' SELECTED DATES',
  560.      +/,' TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  561.      +'          date              amount         total',/,
  562.      +' -----------------------------------------------')
  563.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,755) TITLE, FILIN
  564.   755 FORMAT(/,T10,'PROGRAM CHECK - SUMMARY OF DEPOSITS BETWEEN',
  565.      +' SELECTED DATES',
  566.      +/,T10,'TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  567.      +T10,'         date              amount         total',/,
  568.      +T10,'-----------------------------------------------')
  569.       SUMDEP=0.00
  570.       COUNT=0
  571.       DO 780 I=1,500
  572.         REC=0
  573.         READ(4,120,ERR=780,END=780) RECONCILE,MONTH,DAY,YEAR,TYPE,
  574.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  575.         IF(TYPE.EQ.'D'.OR.TYPE.EQ.'d') REC=3
  576.         IF(REC.EQ.0) GOTO 777
  577.         TODAY=YEAR*10000+MONTH*100+DAY
  578.         IF(TODAY.GE.DATESTART.AND.TODAY.LE.DATEEND) THEN
  579.           IF(TYPE.EQ.'D') SUMDEP=SUMDEP+AMOUNT
  580.           COUNT=COUNT+1
  581.           WRITE(9,759) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,SUMDEP
  582.   759 FORMAT(1X,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,4X,F10.2)
  583.           IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  584.             WRITE(10,758) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,SUMDEP
  585.   758 FORMAT(T10,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,4X,F10.2)
  586.           ENDIF
  587.         ENDIF
  588.   777 CONTINUE
  589.   780 CONTINUE
  590.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  591.         WRITE(9,640) FILOUT
  592.         CLOSE(10)
  593.       ENDIF
  594.       REWIND(4)
  595.       GOTO 305
  596.  
  597. C******************* SORT 7 WITHDRAWALS BY DATE RANGE *************************
  598.  
  599.   702 CONTINUE
  600.       WRITE(9,500)
  601.       READ(9,503) MOSTR,DASTR,YRSTR
  602.       DATESTART = YRSTR*10000 + MOSTR*100 + DASTR
  603.       WRITE(9,505)
  604.       READ(9,503) MOEND,DAEND,YREND
  605.       DATEEND = YREND*10000 + MOEND*100 + DAEND
  606.       READ(4,10) TITLE
  607.       WRITE(9,700) TITLE, FILIN
  608.   700 FORMAT(/,' PROGRAM CHECK - SUMMARY OF WITHDRAWALS BETWEEN',
  609.      +' SELECTED DATES',
  610.      +/,' TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  611.      +'          date              amount         total',/,
  612.      +' -----------------------------------------------')
  613.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,705) TITLE, FILIN
  614.   705 FORMAT(/,T10,'PROGRAM CHECK - SUMMARY OF WITHDRAWALS BETWEEN',
  615.      +' SELECTED DATES',
  616.      +/,T10,'TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  617.      +T10,'         date              amount         total',/,
  618.      +T10,'-----------------------------------------------')
  619.       SUMWITH=0.00
  620.       COUNT=0
  621.       DO 738 I=1,500
  622.         REC=0
  623.         READ(4,120,ERR=738,END=738) RECONCILE,MONTH,DAY,YEAR,TYPE,
  624.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  625.         IF(TYPE.EQ.'W'.OR.TYPE.EQ.'w') REC=3
  626.         IF(REC.EQ.0) GOTO 737
  627.         TODAY=YEAR*10000+MONTH*100+DAY
  628.         IF(TODAY.GE.DATESTART.AND.TODAY.LE.DATEEND) THEN
  629.           IF(TYPE.EQ.'W'.OR.TYPE.EQ.'w') SUMWITH=SUMWITH+AMOUNT
  630.           COUNT=COUNT+1
  631.           WRITE(9,719) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,SUMWITH
  632.   719 FORMAT(1X,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,4X,F10.2)
  633.           IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  634.             WRITE(10,718) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,SUMWITH
  635.   718 FORMAT(T10,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,4X,F10.2)
  636.           ENDIF
  637.         ENDIF
  638.   737 CONTINUE
  639.   738 CONTINUE
  640.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  641.         WRITE(9,640) FILOUT
  642.         CLOSE(10)
  643.       ENDIF
  644.       REWIND(4)
  645.       GOTO 305
  646.  
  647. C******************** SORT 8 OTHER DEBITS BY DATE RANGE **********************
  648.  
  649.   802 CONTINUE
  650.       WRITE(9,500)
  651.       READ(9,503) MOSTR,DASTR,YRSTR
  652.       DATESTART = YRSTR*10000 + MOSTR*100 + DASTR
  653.       WRITE(9,505)
  654.       READ(9,503) MOEND,DAEND,YREND
  655.       DATEEND = YREND*10000 + MOEND*100 + DAEND
  656.       READ(4,10) TITLE
  657.       WRITE(9,814) TITLE, FILIN
  658.   814 FORMAT(/,' PROGRAM CHECK - SUMMARY OF OTHER DEBITS BETWEEN',
  659.      +' SELECTED DATES',
  660.      +/,' TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  661.      +'          date              amount who/what               ',
  662.      +'   total',/,
  663.      +' ----------------------------------------------------------',
  664.      +'--------')
  665.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,815) TITLE, FILIN
  666.   815 FORMAT(/,T10,'PROGRAM CHECK - SUMMARY OF OTHER DEBITS BETWEEN',
  667.      +' SELECTED DATES',
  668.      +/,T10,'TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  669.      +T10,'         date              amount who/what               ',
  670.      +'    total',/,
  671.      +T10,'----------------------------------------------------------',
  672.      +'--------')
  673.       SUMOTHER=0.00
  674.       COUNT=0
  675.       DO 820 I=1,500
  676.         REC=0
  677.         READ(4,120,ERR=820,END=820) RECONCILE,MONTH,DAY,YEAR,TYPE,
  678.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  679.         IF(TYPE.EQ.'O'.OR.TYPE.EQ.'o') REC=3
  680.         IF(REC.EQ.0) GOTO 817
  681.         TODAY=YEAR*10000+MONTH*100+DAY
  682.         IF(TODAY.GE.DATESTART.AND.TODAY.LE.DATEEND) THEN
  683.           IF(TYPE.EQ.'O') SUMOTHER=SUMOTHER+AMOUNT
  684.           COUNT=COUNT+1
  685.           WRITE(9,839) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT,SUMOTHER
  686.   839 FORMAT(1X,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,1X,A17,5X,F10.2)
  687.           IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  688.             WRITE(10,838) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT,SUMOTHER
  689.   838 FORMAT(T10,F4.0,1X,I2,1X,I2,1X,I4,1X,A1,8X,F8.2,1X,A17,5X,F10.2)
  690.           ENDIF
  691.         ENDIF
  692.   817 CONTINUE
  693.   820 CONTINUE
  694.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  695.         WRITE(9,640) FILOUT
  696.         CLOSE(10)
  697.       ENDIF
  698.       REWIND(4)
  699.       GOTO 305
  700.  
  701. C**************** SORT 9 CHECKS BY RANGE OF CHECK NUMBERS *******************
  702.  
  703.   900 CONTINUE
  704.         WRITE(9,917)
  705.   917 FORMAT(/,' start check number: ',/)
  706.         READ(9,907) CHKSTART
  707.   907 FORMAT(I4)
  708.         WRITE(9,918)
  709.   918 FORMAT(/,' ending check number: ',/)
  710.         READ(9,907) CHKEND
  711.       READ(4,10) TITLE
  712.       WRITE(9,905) TITLE, FILIN
  713.   905 FORMAT(/,' PROGRAM CHECK - SUMMARY OF CHECKS BY NUMBER',
  714.      +/,' TITLE:  ',A,/,' DATA FILE: ',A,//,
  715.      +'          date        chk   amount who                    ',
  716.      +'    total',/,
  717.      +' ---------------------------------------------------------',
  718.      +'---------')
  719.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,915) TITLE, FILIN
  720.   915 FORMAT(/,T10,'PROGRAM CHECK - SUMMARY OF CHECKS BY NUMBER',
  721.      +/,T10,'TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  722.      +T10,'         date        chk   amount who                    ',
  723.      +'    total',/,
  724.      +T10,'---------------------------------------------------------',
  725.      +'---------')
  726.       CHKSUM=0.00
  727.       COUNT=0.
  728.       DO 920 I=1,500
  729.         READ(4,120,ERR=920,END=920) RECONCILE,MONTH,DAY,YEAR,TYPE,
  730.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  731.         IF(TYPE.EQ.'C'.OR.TYPE.EQ.'c') TYPE='C'
  732.           IF(TYPE.EQ.'C') THEN
  733.           IF(CHECKNO.GE.CHKSTART.AND.CHECKNO.LE.CHKEND) THEN
  734.             CHKSUM=CHKSUM+AMOUNT
  735.             COUNT=COUNT+1.
  736.             WRITE(9,609)COUNT,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,AMOUNT,
  737.      +WHO,CHKSUM
  738.           IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  739.           WRITE(10,616)COUNT,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,AMOUNT,
  740.      +WHO,CHKSUM
  741.             ENDIF
  742.           ENDIF
  743.         ENDIF
  744.   920 CONTINUE
  745.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  746.         WRITE(9,930) FILOUT
  747.   930 FORMAT(/,' your check number sort is in output file ',A,/)
  748.         CLOSE(10)
  749.       ENDIF
  750.         REWIND(4)
  751.       GOTO 305
  752.  
  753. C******************** SORT 10 ALL DEBITS BY DATE RANGE **********************
  754.  
  755.   950 CONTINUE
  756.       WRITE(9,500)
  757.       READ(9,503) MOSTR,DASTR,YRSTR
  758.       DATESTART = YRSTR*10000 + MOSTR*100 + DASTR
  759.       WRITE(9,505)
  760.       READ(9,503) MOEND,DAEND,YREND
  761.       DATEEND = YREND*10000 + MOEND*100 + DAEND
  762.       READ(4,10) TITLE
  763.       WRITE(9,954) TITLE, FILIN
  764.   954 FORMAT(/,' PROGRAM CHECK - SUMMARY OF ALL DEBITS BETWEEN',
  765.      +' SELECTED DATES',
  766.      +/,' TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  767.      +'          date              amount who/what               ',
  768.      +'   total',/,
  769.      +' ----------------------------------------------------------',
  770.      +'--------')
  771.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,955) TITLE, FILIN
  772.   955 FORMAT(/,T10,'PROGRAM CHECK - SUMMARY OF ALL DEBITS BETWEEN',
  773.      +' SELECTED DATES',
  774.      +/,T10,'TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  775.      +T10,'         date              amount who/what               ',
  776.      +'    total',/,
  777.      +T10,'----------------------------------------------------------',
  778.      +'--------')
  779.       SUMOTHER=0.00
  780.       COUNT=0
  781.       DO 970 I=1,500
  782.         REC=0
  783.         READ(4,120,ERR=970,END=970) RECONCILE,MONTH,DAY,YEAR,TYPE,
  784.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  785.         IF(TYPE.EQ.'W'.OR.TYPE.EQ.'w') REC=3
  786.         IF(TYPE.EQ.'C'.OR.TYPE.EQ.'c') REC=3
  787.         IF(TYPE.EQ.'O'.OR.TYPE.EQ.'o') REC=3
  788.         IF(REC.EQ.0) GOTO 967
  789.         TODAY=YEAR*10000+MONTH*100+DAY
  790.         IF(TODAY.GE.DATESTART.AND.TODAY.LE.DATEEND) THEN
  791.           SUMOTHER=SUMOTHER+AMOUNT
  792.           COUNT=COUNT+1
  793.           WRITE(9,839) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT,SUMOTHER
  794.           IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  795.             WRITE(10,838) COUNT,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT,SUMOTHER
  796.           ENDIF
  797.         ENDIF
  798.   967 CONTINUE
  799.   970 CONTINUE
  800.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  801.         WRITE(9,980) FILOUT
  802.   980 FORMAT(/,' your date sorted debit file is ',A,/)
  803.         CLOSE(10)
  804.       ENDIF
  805.       REWIND(4)
  806.       GOTO 305
  807.  
  808. C********************** SORT 11 WHO/WHAT KEYWORD SORT   ******************
  809.  
  810.  1000 CONTINUE
  811.       WRITE(9,1010)
  812.  1010 FORMAT(/,' what string do you want to sort on?',//,
  813.      +' you may use up to 17 characters, which must be the same',/,
  814.      +' group of characters as used in the ledger file, including',/,
  815.      +' case sensitivity. The string that you enter is left justified',/,
  816.      +' which means that trailing blanks are added to fill out the 17',/,
  817.      +' available spaces. Therefore, if the ledger file is "medicine"',/,
  818.      +' then a keyword search using "med" or "medicine - heart" will',/,
  819.      +' fail.',//)
  820.       READ(9,10) WHATWORD
  821.       READ(4,10) TITLE
  822.       IF(ANS3.EQ.'Y'.OR.ANS3.EQ.'y') GOTO 1070
  823.       WRITE(9,90) TITLE, FILIN
  824.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,92) TITLE, FILIN
  825.  1070 CONTINUE
  826.       COUNT=0
  827.       DO 1030 I=1,500
  828.         READ(4,120,END=1030,ERR=1030) RECONCILE,MONTH,DAY,YEAR,TYPE,
  829.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  830.         IF(WHAT.EQ.WHATWORD.OR.WHO.EQ.WHATWORD) THEN
  831.           WRITE(9,1050) RECONCILE,MONTH,DAY,YEAR,TYPE,
  832.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  833.           IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  834.             WRITE(10,1055) RECONCILE,MONTH,DAY,YEAR,TYPE,
  835.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  836.           ENDIF
  837.  1050 FORMAT(1X,A1,1X,I2,1X,I2,1X,I4,1X,A1,1X,A1,1X,I4,1X,F8.2,
  838.      +1X,A21,1X,A17)
  839.  1055 FORMAT(T10,A1,1X,I2,1X,I2,1X,I4,1X,A1,1X,A1,1X,I4,1X,F8.2,
  840.      +1X,A21,1X,A17)
  841.          ENDIF
  842.  1030 CONTINUE
  843.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,1075)
  844.  1075 FORMAT(/)
  845.       REWIND(4)
  846.       WRITE(9,1060)
  847.  1060 FORMAT(/,' would you like another sort? Y/N ',/)
  848.       READ(9,10) ANS3
  849.       IF(ANS3.EQ.'Y'.OR.ANS3.EQ.'y') GOTO 1000
  850.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  851.         WRITE(9,1040) FILOUT
  852.  1040 FORMAT(/,' your who/what sort output is in file ',A)
  853.         CLOSE(10)
  854.       ENDIF
  855.       GOTO 305
  856.  
  857. C************************** SORT 12 TAX TRANSACTIONS ************************
  858.  
  859.  1200 CONTINUE
  860.       READ(4,10) TITLE
  861.       WRITE(9,1210) TITLE, FILIN
  862.  1210 FORMAT(/,' PROGRAM CHECK - SUMMARY OF TAX TRANSACTIONS',
  863.      +/,' TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  864.      +'       date        chk   amount who                   what',/,
  865.      +' -------------------------------------------------------------',
  866.      +'--------')
  867.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') WRITE(10,1215) TITLE, FILIN
  868.  1215 FORMAT(/,T10,'PROGRAM CHECK - SUMMARY OF RECONCILED TRANSACTIONS',
  869.      +/,T10,'TITLE:  ',A,/,T10,'DATA FILE: ',A,//,
  870.      +T10,'       date        chk   amount who                   what',/,
  871.      +T10,' -----------------------------------------------------------',
  872.      +'----------')
  873.       DO 1230 I=1,500
  874.         READ(4,120,END=1230,ERR=1230) RECONCILE,MONTH,DAY,YEAR,TYPE,
  875.      +TAXES,CHECKNO,AMOUNT,WHO,WHAT
  876.         IF(TYPE.EQ.'D'.OR.TYPE.EQ.'d') TYPE='D'
  877.         IF(TYPE.EQ.'W'.OR.TYPE.EQ.'w') TYPE='W'
  878.         IF(TYPE.EQ.'C'.OR.TYPE.EQ.'c') TYPE='C'
  879.         IF(TYPE.EQ.'O'.OR.TYPE.EQ.'o') TYPE='O'
  880.       IF(TAXES.EQ.'Y'.OR.TAXES.EQ.'y') THEN
  881.         IF(TYPE.EQ.'C') THEN
  882.           WRITE(9,135) RECONCILE,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,
  883.      +    AMOUNT,WHO,WHAT
  884.         IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  885.           WRITE(10,136) RECONCILE,MONTH,DAY,YEAR,TYPE,TAXES,CHECKNO,
  886.      +    AMOUNT,WHO,WHAT
  887.         ENDIF
  888.           GOTO 1235
  889.         ENDIF
  890.         WRITE(9,140) RECONCILE,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT
  891.         IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  892.           WRITE(10,141) RECONCILE,MONTH,DAY,YEAR,TYPE,AMOUNT,WHAT
  893.         ENDIF
  894.  1235 CONTINUE
  895.       ENDIF
  896.  1230 CONTINUE
  897.       IF(ANS2.EQ.'Y'.OR.ANS2.EQ.'y') THEN
  898.         WRITE(9,1240) FILOUT
  899.  1240 FORMAT(/,' your tax sort output is in file ',A)
  900.         CLOSE(10)
  901.       ENDIF
  902.         REWIND(4)
  903.       GOTO 305
  904.  
  905. C****************************************************************************
  906.  
  907.  
  908.  2000 CONTINUE
  909. C      WRITE(9,2010) FILOUT
  910. C 2010 FORMAT(//,' thats it for now...',//)
  911. C      CLOSE(UNIT=4)
  912. C      WRITE(9,2020)
  913. C 2020 FORMAT(/,' the input file is closed...',/)
  914.       STOP
  915.       END
  916.